package com.ojoin.trade.common_core.web.service;

import java.util.List;
import java.util.Map;

import com.ojoin.trade.common.exception.BusinessException;
import com.ojoin.trade.common.web.domain.AccountInfoVO;

public interface AccountBaseService {
	/**
	 * 查询账户基本户余额余额请求(JA000011)
	 * 
	 * @param mhtNo
	 * @param accType
	 * @return
	 * @throws BusinessException
	 */
	public List queryBaseAccountBalance(String mhtNo, String accType)
			throws BusinessException;


    public int queryFeeForDraw(String amount)throws BusinessException;
	/**
	 * 查询账户基本余额（后台提供）
	 * 
	 * @param mhtNo
	 * @param accType
	 * @return
	 * @throws BusinessException
	 */

	public String queryBalance(String mhtNo, String accType)
			throws BusinessException;

	/**
	 * 金融户开户
	 * 
	 * @param mhtNo
	 * @return
	 * @throws BusinessException
	 */
	public List openFinanceAccount(String mhtNo) throws BusinessException;

	/**
	 * 提现
	 * 
	 * @param mhtNo
	 * @param payPasswd
	 * @param cardId
	 * @param amount
	 * @param memo
	 * @return
	 * @throws BusinessException
	 */
	public void drawAccountBalance(String mhtNo, String payPasswd,
			String cardId, String amount, String memo) throws BusinessException;


	public void drawBalanceToIpaynow(String mhtNo, String payPasswd,
            String cardId, String amount, String orderId, String memo) throws BusinessException;

      public List addAccountBalance() throws BusinessException;

	/**
	 * 转账
	 * 
	 * @param mhtNoFrom
	 * @param accTypeFrom
	 * @param payPasswd
	 * @param mhtNoTo
	 * @param amount
	 * @param memo
	 * @return
	 * @throws BusinessException
	 */
	public List rechargeAccountBalance(String mhtNoFrom, String accTypeFrom,
			String payPasswd, String mhtNoTo, String accTypeTo, String amount,
			String memo, String orderId) throws BusinessException;

	public List rechargeAccountBalanceNoPwd(String mhtNoFrom,
			String accTypeFrom, String mhtNoTo, String accTypeTo,
			String amount, String memo, String orderId)
			throws BusinessException;

	/**
	 * 查询账户交易明细
	 * 
	 * @param mhtNo
	 * @return
	 * @throws BusinessException
	 */
	public List queryAccountBaseTransactionDetail(String token)
			throws BusinessException;

    public Map<String,String> queryAccountTransactionStatus(String token)throws BusinessException;

	/**
	 * 查询账户的变更记录
	 * 
	 * @param mhtNo
	 * @param accType
	 * @param start
	 * @param number
	 * @param queryData
	 * @return
	 * @throws BusinessException
	 */

	public List queryAccountChangeDetail(String mhtNo, String accType,
			String start, String number, String queryData)
			throws BusinessException;
	
	/**
	 * 查询指定商户的结算账户账号
	 * @param mhtNo
	 * @return
	 * @throws BusinessException
	 */
	public String queryFinanceAccountBankNo(String mhtNo) throws BusinessException;
	
	/**
	 * 查询指定商户的结算户余额
	 * @param mhtNo
	 * @return
	 * @throws BusinessException
	 */
	public Long queryFinanceAccountBanlance(String mhtNo)
			throws BusinessException;
	
	/**
	 * 查询指定商户的结算户信息
	 * @param mhtNo
	 * @return
	 * @throws BusinessException
	 */
	public List queryFinanceAccountInfo(String mhtNo)
			throws BusinessException;
	
	
	/**
	 * 查询商户指定类型的账户
	 * @param mhtNo
	 * @param accType
	 * @return
	 * @throws BusinessException
	 */
	public String queryBankNo(String mhtNo, String accType)
			throws BusinessException;
	
}
